
class Trayectoria {
  Golpe inicio;
  Golpe fin;

  PVector puntoV;//almacenamos el par (y,z) que se corresponde con el azimut de la curva.

  int frameV;  // no se que es esto

  Trayectoria(Golpe i, Golpe f, PVector pv) {
    inicio = i;
    fin    = f;
    puntoV = pv;
  }  

  Trayectoria(Golpe i, Golpe f) {
    inicio = i;
    fin    = f;
    puntoV = new PVector(0.0, 2.25 + random(-0.75,0.75), 0.6+random(-0.1,0.1));
  }  

  String toString () {
    return "inicio:(" + inicio + ") fin(" + fin + ") v:" + puntoV ;
  } 

  void pinta(Golpe g, Boolean black) {
    inicio.pinta();
    fin.pinta();
    
    if (black)
      stroke(0);
    else
      stroke(127);
      
    line(inicio.pos.x, inicio.pos.z, fin.pos.x, fin.pos.z);
  }

  void printXML(PrintWriter out){
    //TODO:
    // preguntamos inicio.frame=fin.frame no poner trayectoria en xml y warning.;
    //  -Altura de la red --> rango??
    //  -Altura saque --> 2.7 +random();
    //  -Altura raqueta --> 
    out.println("\t\t\t<inicio>");    
    out.println("\t\t\t\t"+cxm(inicio.pos.x)+" , "+cym(inicio.pos.y)+" , "+czm(inicio.pos.z));       
    out.println("\t\t\t</inicio>");    
 
    out.println("\t\t\t<puntoV>");    
    out.println("\t\t\t\t >>>"+(puntoV.x)+" , "+(puntoV.y)+" , "+(puntoV.z));    
    out.println("\t\t\t\t"+(cxm(inicio.pos.x+(fin.pos.x-inicio.pos.x)*puntoV.z))+" , "+puntoV.y+" , "+(czm(inicio.pos.z+(fin.pos.z-inicio.pos.z)*puntoV.z)));    
    out.println("\t\t\t</puntoV>");    
    
    out.println("\t\t\t<fin>");    
    out.println("\t\t\t\t"+cxm(fin.pos.x)+" , "+cym(fin.pos.y)+" , "+czm(fin.pos.z));    
    out.println("\t\t\t</fin>");    
  }
}

